﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TOAcademias;

namespace DAOAcademias
{

    /*************************************
    Autor: Brian Pari
    Fecha de Creación: 06/02/2011
    Descripción de la Funcionalidad: Clase que contiene metodos que serviran para dar
    soporte a los registros de la entidad Planificacion.
    **************************************/

    public class DOPlanificacion
    {

          DBModuloAcademiasDataContext dbml;

          public DOPlanificacion()
        {
            dbml = new DBModuloAcademiasDataContext();
        }

        public List<TOPlanificacion> obtenerPlanificacionesXPeriodo(String codigoPeriodo)
        {

            List<TOPlanificacion> listaPlanificacion = new List<TOPlanificacion>();

            
            
            var planificaciones = (from plan in dbml.PLANIFICACIONs
                                   where plan.COD_PERIODO==codigoPeriodo && plan.EST_PLANIFICACION=="ACTIVO"
                           select plan
                             ) ;

            foreach (var planificacion in planificaciones) {

                TOPlanificacion toPlanificacion = new TOPlanificacion();
                toPlanificacion.Cod_Planificacion = planificacion.COD_PLANIFICACION;
                toPlanificacion.Cod_Periodo = planificacion.COD_PERIODO;
                toPlanificacion.Cod_Academia = planificacion.COD_ACADEMIA;
                toPlanificacion.Estado = planificacion.EST_PLANIFICACION;

                listaPlanificacion.Add(toPlanificacion);
            
            }

            return listaPlanificacion;
        }

        public List<TOPlanificacion> obtenerPlanificaciones()
        {

            List<TOPlanificacion> listaPlanificacion = new List<TOPlanificacion>();

            var planificaciones = (from plan in dbml.PLANIFICACIONs
                                   select plan
                             );

            foreach (var planificacion in planificaciones)
            {

                TOPlanificacion toPlanificacion = new TOPlanificacion();
                toPlanificacion.Cod_Planificacion = planificacion.COD_PLANIFICACION;
                toPlanificacion.Cod_Periodo = planificacion.COD_PERIODO;
                toPlanificacion.Cod_Academia = planificacion.COD_ACADEMIA;
                toPlanificacion.Estado = planificacion.EST_PLANIFICACION;

                listaPlanificacion.Add(toPlanificacion);

            }

            return listaPlanificacion;
        }

        public void insertarPlanificacion(TOPlanificacion toPlanificacion)
        {
            List<TOPlanificacion> listaPlanificaciones = obtenerPlanificaciones();

            int intAux = 0;
            int intTemp=0;
            foreach (TOPlanificacion planificacion in listaPlanificaciones)
            {

                intTemp=Convert.ToInt32(planificacion.Cod_Planificacion.Substring(2));
                if (intTemp > intAux) {

                    intAux = intTemp;
                }
                

            }
            intAux = intAux + 1;

            string strCodigo = ""+intAux;

            strCodigo = "PL000".Substring(0, 5 - strCodigo.Length)+intAux;



            PLANIFICACION plan = new PLANIFICACION();
            plan.COD_PLANIFICACION = strCodigo;
            plan.COD_PERIODO = toPlanificacion.Cod_Periodo;
            plan.COD_ACADEMIA = toPlanificacion.Cod_Academia;
            plan.EST_PLANIFICACION = toPlanificacion.Estado;

            dbml.PLANIFICACIONs.InsertOnSubmit(plan);
            dbml.SubmitChanges();
 
        }

        public void modificarPlanificacion(TOPlanificacion toPlanificacion)
        {
            var planificacion = (from plan in dbml.PLANIFICACIONs
                            where plan.COD_PLANIFICACION == toPlanificacion.Cod_Planificacion
                            select plan).Single();




            planificacion.EST_PLANIFICACION = toPlanificacion.Estado;

            dbml.SubmitChanges();

        }

    }
}
